package titiritero.vista;

import java.awt.Color;
import java.awt.GridLayout;
import java.awt.Panel;
import java.util.ArrayList;
import java.util.Iterator;

import javax.swing.ImageIcon;
import javax.swing.JLabel;

import tablero.Posicion;
import titiritero.ControladorJuego;
import ataques.Mina;
import ataques.MinaConRetardo;

public class PanelTablero extends Panel {

    private static final long serialVersionUID = 1L;
    GridButton[][] casilleros;
    ControladorJuego controlador;
    private ArrayList<Dibujable> vistasBarcos;

    PanelTablero(ControladorJuego controlador) {
        this.controlador = controlador;
        setLayout((new GridLayout(10, 10)));
        setBackground(Color.cyan);
        casilleros = new GridButton[10][10];
        for (int i = 0; i < 10; i++) {
            for (int j = 0; j < 10; j++) {
                casilleros[i][j] = new GridButton(i, j, new ImageIcon("src/agua.jpg"));
                add(casilleros[i][j]);
                casilleros[i][j].addActionListener(controlador);
            }
        }

    }

    public void setBoton(GridButton boton) {
        this.casilleros[boton.getFila() - 1][boton.getColumna() - 1].setIcon(boton.getIcon());
    }
    
    public void setJLable(JLabel Jlabel , int fila , int columna){
    	
    	this.casilleros[fila- 1][columna- 1].add(Jlabel);
    }

    public void setText(int fila, int columna, String barco, String mina) {
        casilleros[fila][columna].setText("<html>" + barco + "<br />" + mina + "</html>");

    }

    public void setFondoBoton(int fila, int columna, ImageIcon imagen) {
        this.casilleros[fila][columna].setIcon(imagen);
        this.casilleros[fila][columna].removeAll();

    }

    public void setVistas(ArrayList<Dibujable> vistasBarcos) {
        this.vistasBarcos = vistasBarcos;

    }

    public void dibujar() {
        Iterator<Dibujable> it = vistasBarcos.iterator();
        while (it.hasNext()) {
            Dibujable vistaBarco = it.next();
            vistaBarco.dibujar(this);
        }

    }

    public void dibujarMinas(ArrayList<Mina> minas) {
        Iterator<Mina> i = minas.iterator();
        while (i.hasNext()) {
            Mina mina = i.next();
            VistaMina vista = mina.getVista();
            vista.dibujar(this);
        }
    }
}